#ifndef OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_OCK_TASK_STATISTICS_H
#define OCK_MEMORY_BRIDGE_OCK_ACLADAPTER_OCK_TASK_STATISTICS_H
#include <memory>
#include <ostream>
#include <chrono>
#include "ock/hmm/mgr/OckHmmHMObject.h"
#include "ock/hmm/mgr/OckHmmTrafficStatisticsInfo.h"
#include "ock/acladapter/data/OckHmmTrafficInfo.h"

namespace ock {
namespace acladapter {

class OckTaskStatisticsMgr
{
public:
    virtual ~OckTaskStatisticsMgr() noexcept = default;
    virtual void AddTrafficInfo(std::shared_ptr<OckHmmTrafficInfo> info) = 0;
    virtual std::shared_ptr<hmm::OckHmmTrafficStatisticsInfo> PickUp(uint32_t maxGapMilliSeconds) = 0;
    virtual std::shared_ptr<hmm::OckHmmTrafficStatisticsInfo> PickUp(
        hmm::OckHmmDeviceId deviceId, uint32_t maxGapMilliSeconds) = 0;
    static std::shared_ptr<OckTaskStatisticsMgr> Create(void);
};

}
}
#endif